﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace LearnCSharp
{
	class Debug_Trace_Assert
	{
		public static void Test()
		{
			//////////////////////
			// DEBUG & TRACE 
			// Affiche des infos sur la fenêtre de sortie de visual ou de debugview 
			// si repectivement on a coché les options DEBUT et TRACE dans les propriétés du projet
			// En général TRACE en compilation Release et Debug et juste DEBUG en compilation Debug
			// ATTENTION : pas de {0} dans le message

			Debug.WriteLine("DEBUG : Affiche infos debug");
			Trace.WriteLine("TRACE : Affiche infos trace");

			//////////////////////
			// ASSERT
			// Affiche un message intenpestif avec ou sans info en Debug et/ou Release
			// De préférence qu'en Release
			Debug.Assert(false);
			Trace.Assert(false, "ASSERT : Affiche infos assert");

			//////////////////////
			// REDIRECTION : vers un fichier de log par exemple
			Stream s = File.Create("LogText.txt");
			TextWriterTraceListener t = new TextWriterTraceListener(s);
			Debug.Listeners.Add(t);
			Debug.AutoFlush = true;
			Debug.WriteLine("DEBUG : Redirection info1 debug sur fichier");
			Debug.WriteLine("DEBUG : Redirection info2 debug sur fichier");
			Debug.WriteLine("DEBUG : Redirection info3 debug sur fichier");

		}
	}
}
